In order to produce fast graphics at high resolution on a display screen, obtaining the maximum performance from any microprocessor responsible for generating graphic is desirable. Known computer systems for generating graphics often use specialized processors (CPUs) which incorporate features designed to speed up certain common drawing routines.
The generation of graphics in such computer systems usually involves the calculation of the display coordinates of every point in a given shape and the conversion of these coordinates into an address in the system memory where the data for each point is to be stored. This is normally carried out by the system CPU or, alternatively, a dedicated graphics CPU.
The display screen is conventionally divided into a large number of elements known as pixels which are arranged in an array. The location of any given pixel in the array is defined relative to the top left corner by X,Y coordinates. For example, referring to FIG. 1, if the pixel at the top left corner of the display has coordinates (0, 0) then a pixel 2 occupying a position on the display of 4 pixels from the left hand column and 5 pixels down from the top row has coordinates (3, 4).
The brightness and color information for each pixel is stored at a memory address in the system memory for access by a system display processor or adaptor which converts the pixel information into a visible point on the display. The memory address itself represents the pixel coordinates and is a single number generated by the CPU. Generation of the memory address is achieved by a calculation which is performed by the CPU on the X,Y values of the pixel coordinates. A common routine for calculating the memory address is:Address=Base+X+Y*Pitchwhere:    Base=the first address in the memory which is allocated to the storage of pixel data;    X and Y=the values of the pixel coordinates as described above; and    Pitch=the number of pixels horizontally across the display.
It can be seen that the Base value is the address location in the system memory corresponding to the pixel coordinate (0, 0) of FIG. 1 and the Pitch value represents the number of memory addresses required for a single row of pixels.
While the above calculation is a relatively simple one, it is required to be computed for every pixel plotted. Since a display may have up to and above one million pixels, the need for the CPU to perform the calculation for all of the pixels in a single display frame greatly reduces the performance of the CPU. This may be disadvantageous since the CPU may be required to perform other functions, in addition to the generating of graphics, which further reduce the operational speed and performance of the CPU. Moreover, the provision within a computer system of a CPU dedicated solely to the generation of graphics is not necessarily a solution to the problem since it may be undesirable to have different types of processors within a single system design.